/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package application;

import application.beans.CompteBean;
import application.beans.CoursBean;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Étienne
 */
class Cours {
    Integer idCours;
    String titre;
    Compte professeur;
    String codeCours;
    String domaine;
    String actif;
    Integer groupe;
    List<Compte> eleves;

    public String getActif() {
        return actif;
    }

    public void setActif(String actif) {
        this.actif = actif;
    }

    public String getCodeCours() {
        return codeCours;
    }

    public void setCodeCours(String codeCours) {
        this.codeCours = codeCours;
    }

    public String getDomaine() {
        return domaine;
    }

    public void setDomaine(String domaine) {
        this.domaine = domaine;
    }

    public Integer getGroupe() {
        return groupe;
    }

    public void setGroupe(Integer groupe) {
        this.groupe = groupe;
    }

    public List<Compte> getEleves() {
        return eleves;
    }

    public void setEleves(List<Compte> eleves) {
        this.eleves = eleves;
    }

    public Integer getIdCours() {
        return idCours;
    }

    public void setIdCours(Integer idCours) {
        this.idCours = idCours;
    }

    public Compte getProfesseur() {
        return professeur;
    }

    public void setProfesseur(Compte professeur) {
        this.professeur = professeur;
    }

    public String getTitre() {
        return titre;
    }

    public void setTitre(String titre) {
        this.titre = titre;
    }
    
    public Cours ()
    {
    }
    
    public Cours (Integer idCours, List<Compte> eleves, Compte professeur,
            String codeCours, String domaine, String actif, Integer groupe, String titre)
    {
        this.idCours = idCours;
        this.eleves = eleves;
        this.professeur = professeur;
        this.codeCours = codeCours;
        this.domaine = domaine;
        this.actif = actif;
        this.groupe = groupe;
        this.titre = titre;
    }
    
    /**
     * Méthode comme le asBean() mais pour éviter des boucles infinies du style:
     * le compte contient des cours, qui contient des comptes, qui contient
     * des cours...
     * @return 
     */
    public CoursBean getBean(){
        List<CompteBean> comptesBean = new ArrayList<CompteBean>();
        CoursBean bean = new CoursBean(this.idCours, this.titre, 
                this.professeur.getBean(),this.codeCours, this.domaine, this.actif,this.groupe, comptesBean);
        return bean;
    }
    
    /**
     * Méthode qui va créer un CoursBean avec les informations du cours présent
     */
    public CoursBean asBean(){
        List<CompteBean> comptesBean = new ArrayList<CompteBean>();
        
        if(!(this.eleves.isEmpty()))
        {
            for(Compte comptes:this.eleves)
            {
                comptesBean.add(comptes.getBean());
            } 
        }
        
        CoursBean bean = new CoursBean(this.idCours, this.titre, 
                this.professeur.asBean(),this.codeCours, this.domaine, this.actif, this.groupe, comptesBean);
        return bean;
    }
}
